内存回收

1、内存使用查看

查看

使用free1指令

[lcr@centos ~]$ free
total used free shared buff/cache available
Mem: 5739356 1328856 3485940 146308 924560 3969900
Swap: 6287356 0 6287356
[MI-R3G /opt/home/admin]# free -m
total used free shared buffers cached
Mem: 255532 206948 48584 0 296 170948
-/+ buffers/cache: 35704 219828
Swap: 0 0 0

说明

项目 说明
total 总共的内存,等于used+free
used 已用内存
free 空闲内存
shared 被多个进程共享的内存
buff/buffers 缓冲,是用于存放要输出到disk(块设备)的数据。是根据磁盘的读写 设计的,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。
cache/cached 缓存,存放从disk上读出的数据。是把读取过的数据保存起来,重新读取时若命中(找到需要的数据)就不 要去读硬盘了,若没有命中就读硬盘。其中的数据会根据读取频率进行组织,把最频繁读取的内容放在 最容易找到的位置,把不再读的内容不断往后排,直至从中删除。如果cache 的值很大,说明cache住的文件数很多。如果频繁访问到的文件都能被cache住,那么磁盘的读IO bi会非常小。
available 可用
Mem 物理内存
-buffers/cache = used -(buffers+cache) 表示使用的内存中不计算buffers和cache,系统使用内存量
+buffers/cache =free+( buffers+cache) 表示系统空闲内存与buffers、cache的和
Swap 交换内存,相当于windows系统的虚拟内存

2、手动同步

使用sync指令2

[lcr@centos ~]$ sync

手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)


3、回收

[lcr@centos ~]$ echo 3 > /proc/sys/vm/drop_caches

参数说明:

参数 说明
1 To free pagecache: 清空 页面 高速缓存
2 To free dentries and inodes: 清空 目录项 和 索引节点
3 To free pagecache, dentries and inodes: 清空以上两项

实例

[MI-R3G /opt/home/admin]# free -m
total used free shared buffers cached
Mem: 255532 207028 48504 0 548 171168
-/+ buffers/cache: 35312 220220
Swap: 0 0 0
[MI-R3G /opt/home/admin]# echo 3 > /proc/sys/vm/drop_caches
[MI-R3G /opt/home/admin]# free -m
total used free shared buffers cached
Mem: 255532 40280 215252 0 340 5160
-/+ buffers/cache: 34780 220752
Swap: 0 0 0

执行前后对比可以看到,cached 一项的占用减少了很多


  1. FREE指令
    NAME
    free - 显示系统中已用和未用的内存空间总和.
    总览 (SYNOPSIS)
    free [-b | -k | -m] [-o] [-s delay ] [-t] [-V]
    描述 (DESCRIPTION)
    free 显示 系统中 已用和未用的 物理内存和交换内存, 共享内存和 内核使用的缓冲区的 总和.
    选项 (Options)
    -b 选项 以字节为单位 显示 内存总和; -k 选项 (缺省的) 以 KB 为单位 显示;
    -m 选项 以 MB 为单位.
    -t 选项 显示 一个 总计行.
    -o 选项 禁止 “buffer adjusted” 行的显示. 除非 指定 free 从 (相应的)已用/未用的 内存 减去/加上 缓冲区内存.
    -s 使 free 以 delay 秒为间隔, 连续抽样显示. delay 可以设置成浮点数,它用 usleep(3) 做 微秒级 延迟.
    -V 显示版本信息.
    文件 (FILES)
    /proc/meminfo– 内存信息
  2. sync指令
    NAME
    sync - 清空文件系统缓冲区
    总览 (SYNOPSIS)
    sync [OPTION]
    描述 (DESCRIPTION)
    强迫把更改的块写入磁盘, 并更新超级块。
    –help 显示帮助然后终止。
    –version
    显示版本信息然后终止。